package com.ruoyi.system.service.impl;

import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.TCoupon;
import com.ruoyi.system.service.ITCouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.TUserCouponMapper;
import com.ruoyi.system.domain.TUserCoupon;
import com.ruoyi.system.service.ITUserCouponService;

/**
 * 用户优惠卷Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-03-04
 */
@Service
public class TUserCouponServiceImpl implements ITUserCouponService 
{
    @Autowired
    private TUserCouponMapper tUserCouponMapper;
    @Autowired
    private ITCouponService tCouponService;
    /**
     * 查询用户优惠卷
     * 
     * @param id 用户优惠卷主键
     * @return 用户优惠卷
     */
    @Override
    public TUserCoupon selectTUserCouponById(Long id)
    {
        return tUserCouponMapper.selectTUserCouponById(id);
    }

    /**
     * 查询用户优惠卷列表
     * 
     * @param tUserCoupon 用户优惠卷
     * @return 用户优惠卷
     */
    @Override
    public List<TCoupon> selectTUserCouponList(String userId)
    {
        TUserCoupon tUserCoupon = new TUserCoupon();
        tUserCoupon.setUserId(userId);
        List<TUserCoupon> tUserCoupons = tUserCouponMapper.selectTUserCouponList(tUserCoupon);
        List<TCoupon> list = new ArrayList<>();
        for (TUserCoupon userCoupon : tUserCoupons) {
            TCoupon tCoupon = tCouponService.selectTCouponById(userCoupon.getId());
            list.add(tCoupon);
        }
        return list;
    }

    @Override
    public List<TCoupon> selectUserNot(String appUserId) {
        TUserCoupon tUserCoupon = new TUserCoupon();
        tUserCoupon.setUserId(appUserId);
        List<TUserCoupon> tUserCoupons = tUserCouponMapper.selectTUserCouponList(tUserCoupon);
        TCoupon tCoupon = new TCoupon();
        tCoupon.setIsEnabled(1);
        List<TCoupon> list = tCouponService.selectTCouponList(tCoupon);
        for (TCoupon coupon : list) {
            for (TUserCoupon userCoupon : tUserCoupons) {
                if (coupon.getId()==userCoupon.getCouponId()){
                    list.remove(coupon);
                }
            }
        }
        return list;
    }

    /**
     * 新增用户优惠卷
     * 
     * @param tUserCoupon 用户优惠卷
     * @return 结果
     */
    @Override
    public int insertTUserCoupon(TUserCoupon tUserCoupon)
    {
        tUserCoupon.setCreateTime(DateUtils.getNowDate());
        return tUserCouponMapper.insertTUserCoupon(tUserCoupon);
    }

    /**
     * 修改用户优惠卷
     * 
     * @param tUserCoupon 用户优惠卷
     * @return 结果
     */
    @Override
    public int updateTUserCoupon(TUserCoupon tUserCoupon)
    {
        return tUserCouponMapper.updateTUserCoupon(tUserCoupon);
    }

    /**
     * 批量删除用户优惠卷
     * 
     * @param ids 需要删除的用户优惠卷主键
     * @return 结果
     */
    @Override
    public int deleteTUserCouponByIds(Long[] ids)
    {
        return tUserCouponMapper.deleteTUserCouponByIds(ids);
    }

    /**
     * 删除用户优惠卷信息
     * 
     * @param id 用户优惠卷主键
     * @return 结果
     */
    @Override
    public int deleteTUserCouponById(Long id)
    {
        return tUserCouponMapper.deleteTUserCouponById(id);
    }
}
